home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1979-12-31 | 1.5 KB | 56 lines |
- 10 KEY OFF
- 20 CLS
- 30 DEFINT F,T
- 40 DIM FX(1000):DIM FY(1000):DIM TX(1000):DIM TY(1000)
- 50 SCREEN 1
- 60 COLOR 0,1
- 70 STARTCTR=1000
- 80 DELMODE=1:OLDCTR=STARTCTR
- 90 OPEN "data" FOR INPUT AS #1
- 100 IF EOF (1) THEN CLOSE#1:GOTO 200
- 110 CTR=CTR+1
- 120 INPUT#1,FX(CTR),FY(CTR),TX(CTR),TY(CTR)
- 130 GOTO 100
- 140 X=0:Y=0
- 150 PSET (X,Y)
- 160 PX=X:PY=Y
- 170 K$=INKEY$
- 180 IF K$="" GOTO 170
- 190 IF K$="s" OR K$="S" THEN DELMODE=1:OLDCTR=CTR:STARTCTR=CTR:CLOSE#1:ELSE GOTO 340
- 200 C=3:Z=1:CLS:OPEN "data" FOR OUTPUT AS #1
- 210 IF Z>CTR THEN 1000
- 220 IF Z>STARTCTR THEN C=2
- 230 IF DELMODE=0 AND C=3 THEN 290
- 240 LINE (FX(Z),FY(Z)) -(TX(Z),TY(Z)),1
- 250 K$=INKEY$: IF K$="" THEN 250
- 260 IF K$="D" OR K$="d" THEN DELCTR=DELCTR-1:GOTO 320
- 270 IF K$=" " THEN 290
- 280 IF K$="G" OR K$="g" THEN DELMODE=0 :GOTO 290:ELSE GOTO 230
- 290 LINE (FX(Z),FY(Z)) -(TX(Z),TY(Z)),C
- 300 IF C=3 THEN PRINT#1,FX(Z),FY(Z),TX(Z),TY(Z)
- 310 IF Z=>OLDCTR THEN LPRINT Z"- COMMAND = line ("FX(Z)","FY(Z)") -("TX(Z)","TY(Z)"),3"
- 320 Z=Z+1
- 330 GOTO 210
- 340 IF K$="E" OR K$="e" THEN CLOSE#1:SYSTEM
- 350 IF LEN(K$)>1 THEN K=ASC(MID$(K$,2)) ELSE K=ASC(K$)
- 360 IF K=56 OR K=52 OR K=50 OR K=54 THEN V=10: GOTO 390
- 370 IF K=72 OR K=75 OR K=77 OR K=80 OR K=82 OR K=83 THEN V=1: GOTO 390
- 380 GOTO 170
- 390 PRESET (X,Y)
- 400 IF K=77 OR K=54 THEN IF X<320-V THEN X=X+V
- 410 IF K=75 OR K=52 THEN IF X>-1+V THEN X=X-V
- 420 IF K=72 OR K=56 THEN IF Y>-1+V THEN Y=Y-V
- 430 IF K=80 OR K=50 THEN IF Y<200-V THEN Y=Y+V
- 440 PSET (PX,PY),1:PSET (X,Y),1
- 450 IF K=82 GOTO 480
- 460 IF K=83 THEN GOTO 160
- 470 GOTO 170
- 480 LINE (PX,PY) -(X,Y),1
- 490 CTR=CTR+1
- 500 FX(CTR)=PX:FY(CTR)=PY:TX(CTR)=X:TY(CTR)=Y
- 510 GOTO 160
- 1000 IF STARTCTR>CTR THEN STARTCTR=CTR
- 1010 CTR = STARTCTR
- 1020 IF DELCTR<0 THEN CLOSE#1:SCREEN 0:WIDTH 80:CLS:RUN"DRAW"
- 1030 GOTO 170
-